$(function () {
    // 需求1.定义校验
    let form = layui.form;
    // form里面有一个方法verify专门定义参数
    // 参数是独享类型: 属性是规则名称 ,值是规则
    form.verify({
        nickname: [
            /^[\S]{1,10}$/,
            '昵称的长度为1-10个字符'
        ]
    });


    // 需求2.渲染用户信息,封装函数,后面还要用
    let layer = layui.layer;
    initUserInfo();  //复习知识点函数提升
    function initUserInfo() {
        axios({
            method: 'GET',
            url: '/my/userinfo',
        }).then(res => {
            // 判断
            if (res.data.status != 0) {
                return layer.msg(res.data.message);
            }
            // 根据官网,为form表单赋值
            // 内置模块>表单>表单赋值/取值
            // formUserInfo 即 class="layui-form" 所在元素属性 lay-filter="" 对应的值
            form.val('formUserInfo', res.data.data)
        });
    }

    // 需求3: 重置功能
    $('#btnReset').on('click', function (e) {
        // 阻止表单默认设置行为
        e.preventDefault();
        // 重新渲染表单
        initUserInfo();
    });


    // 需求4.:修改用户信息
    $('form').on('submit', function (e) {
        e.preventDefault();
        axios({
            method: 'POST',
            url: '/my/userinfo',
            // 设置的参数,  根据参数类型会设置头信息;  a=1&b=2&c=3
            // comtemt-type: application/x-ww-....
            // 获取所有name属性
            data: $(this).serialize(),
        }).then((res) => {
            // console.log(res);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message);
            }
            // 成功:提示
            layer.msg('恭喜您,修改用户信息成功!')
            // 直接调用无效,因为不是一个window对象
            // getUserInfo();这个是前面侧边栏头像文字渲染留下的函数调用
            // 这样信息修改成功后侧边栏那里也成功
            window.parent.getUserInfo();
        });
    })
});